/**
 * @file ProductRemote.java
 * Projet eCOM 2010 (Miage Descartes)
 * @author Doido Sébastien
 * @version 2
 * @brief Interface du bean dédié au traitement des produits
 */
package ecom.beans;

import java.util.Collection;

/**
 * @brief Opérations réalisables pour la gestion d'un produit
 * @author Doido Sébastien
 */
public interface ProductRemote {

    /**
     * @brief renvoie l'identifiant unique du produit
     * @return l'identifiant unique du produit
     */
    public int getProductId(); //retourne la référence (identificateur unique) du produit

    /**
     * @brief Renvoie le nom du produit
     * @return le nom du produit
     */
    public String getProductName(); // retourne le nom du produit

    /**
     * @brief Renvoie la description du produit
     * @return la description du produit
     */
    public String getDescription();

    /**
     * @brief Renvoie l'image du produit
     * @return l'image du produit
     */
    public String getImage();

    /**
     * @brief Renvoie les lignes d'inventaire (stock) relatives au produit
     * @return les lignes d'inventaire (stock) relatives au produit
     */
    public Collection<WarehouseLineBean> getStocks();

    /**
     * @brief Renvoie la catégorie du produit
     * @return la catégorie du produit
     */
    public CategoryBean getCategory();

    // Business stuff
    /**
     * @brief Ajout d'une ligne d'inventaire
     * @param store : magasin proposant le produit
     * @param quantity : quantité proposée
     * @param price : prix de vente pour ce magasin
     */
    public void addWarehouseLine(ProductStoreBean store, int quantity, double price);
}
